In an enterprise environment, users in different roles, such as customers, agents, experts and supervisors, need to communicate with one another using one or more media such as Instant Messaging (IM), electronic mail or voice calls. Often, a user may log into a web-based portal that provides a composite medium for accessing different types of text or voice media. While a user's presence on a given media indicates that the user has logged into the media, the user's availability for communications is represented in many media by an availability indicator that may reflect different values, such as “available,” “away,” “do not disturb,” “extended away,” or “free to chat” depending on the user's actual availability for communications. The user may manually change his or her own availability settings as seen by other users and applications. In addition, a number of techniques have been proposed or suggested for automatically determining the availability of a user based on user activity, such as keyboard activity, calendar appointments or presence in a given area, such as an office. Users and software systems may utilize a user's availability information to decide whether or not to establish communication with that user.
Enterprises have become largely global with users in geographically distributed regions needing to interact with each other. These interactions may be initiated by a user or a software system that determines a need for the interaction. Users in an enterprise may have one or more roles that may require them to perform specific functions. For example, contact center agents provide support to customers that contact an enterprise with specific needs. In addition, an enterprise will often designate “experts” in various subject areas to help resolve issues or answer questions in the various subject areas. In another example, a system may detect that an item in an inventory is below a threshold and a conference call between certain people needs to be established to place an order for the item. The conference call to place an order for the item may require a person responsible for accounts, such as an accounts manager, a person who is responsible for supplies, and possibly, a supervisor.
The function of certain roles such as a contact center agent or an expert on the floor in a retail store may critically require communication media. User-initiated communications are commonplace in enterprises. However, as enterprise processes become more automated, an increasing number of communication interactions will be initiated by software that will need to set up communication between a group of users. The availability of users will be one of the factors that such a system or a user may inspect before deciding to communicate with the users to optimize the productivity of a communication.
While it is desirable to allow enterprise users to control their availability on various media, such user control actions may conflict with the resource needs and policies of an enterprise. For example, it may not be desirable to have contact center agents become unavailable during times of peak call volume in the contact center. In addition, if an enterprise policy requires at least one supervisor to be available at all times, the only currently available supervisor should not be allowed to become unavailable until another supervisor becomes available.
A need therefore exists for a mechanism for negotiating the availability of a user on one or more media in a manner that is consistent with the needs or policies (or both) of an enterprise.